package com.atguigu.juc.day01;

/**
 * @author atguigu-mqx
 */
@FunctionalInterface
interface Foo{
    //  抽象方法:
    public abstract void sayHi();
    //    public abstract void sayHii(String name);

    //  是否还能有其他方法? default static
    default int add(int a, int b){
        return a+b;
    };
    default int add(int a, int b,int c){
        return a+b+c;
    };

    static int div(int x,int y){
        return x/y;
    }
    static int div(int x,int y,int z){
        return x/y+z;
    }


}
public interface FooTest {

    public static void main(String[] args) {

        //  使用拉姆达表达式：
        Foo foo = ()->{
            System.out.println("hello word");
        };
        //  调用方法
        foo.sayHi();
        //  调用默认方法 add();
        System.out.println(foo.add(2, 4));
        System.out.println(foo.add(2, 4,6));

        //  静态方法：
        System.out.println(Foo.div(6, 2)); // 3
        System.out.println(Foo.div(6, 2,1)); // 4

    }


}
